package com.abel.bigwater.data.jnrq

import io.netty.buffer.ByteBuf

/**
 * 数据域 D 数据域 Len-13 个字节
 */
abstract class JnrqData {

    var dataLen: Int? = null

    /** 信号强度*/
    var rssi: Short? = null

    /** 发包次数*/
    var sendPacketCount: Short? = null

    /**  收包次数*/
    var recvPacketCount: Short? = null

    /** 设备软件版本 */
    var swVersion: Short? = null

    /**
     * 计算数据长度，针对解析和打包
     */
    abstract fun computeDataLen(): Int

    /**
     * 从当前位置写入打包字节流
     */
    abstract fun fillBuffer(buf: ByteBuf)

    /**
     * 解析字节流，从buf当前位置开始，并且消费其中的字节。
     */
    abstract fun parseBuffer(buf: ByteBuf)
}